package com.jy.api.misc;

import java.util.List;

import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

import com.jy.api.misc.dto.ISTTR4QueryDto;
import com.jy.api.misc.dto.QuHuaDMDto;
import com.jy.api.misc.dto.ShuJuYuanDto;
import com.jy.api.misc.dto.WSSYBMXTDaiMaDto;
import com.jy.api.misc.dto.ZhiJiCXDto;
import com.jy.api.misc.dto.ZhiYuDto;
import com.jy.api.misc.dto.ZhiYuMXCXDto;
import com.jy.api.misc.dto.ZhiYuYSMXDto;
import com.jy.framework.base.entity.Result;

/**
 * 值域术语接口
 *@className(类名称):  MiscAPI 
 *@description(类描述):  
 *@author(创建人):  zsh 
 *@createDate(创建时间):  2024年8月1日 下午3:10:17
 *@updateUser(修改人):  zsh 
 *@updateDate(修改时间):  2024年8月1日 下午3:10:17
 *@updateRemark(修改备注):   
 *@version(版本):  v1.0
 */
public interface MiscAPI {
	
	
	/**
	 * 查询集值映射 IST-TR4
	 * /wssy/TRS/jiZhiYSCX
	 * @param req
	 * @return
	 */
    Result<List<ZhiYuYSMXDto>> jiZhiYSCX(@RequestBody ISTTR4QueryDto req);
	

	/**
	 * 获取集值映射 IST-TR3
	 * /wssy/TRS/jiZhiYSHQ
	 * @param id 唯一标识符
	 * @return
	 */
    Result<ZhiYuYSMXDto> jiZhiYSHQ(@RequestParam("id") String id);
    
    
    /**
     * 查询值集 IST-TR2
     * /wssy/TRS/jiZhiCX
     * @param req
     * @return
     */
    Result<List<ZhiYuDto>> jiZhiCX(@RequestBody ZhiJiCXDto req);
    
    
    /**
     * 获取值集 IST-TR1
     * /wssy/TRS/jiZhiHQ
     * @param id 唯一标识符
     * @return
     */
    Result<WSSYBMXTDaiMaDto> jiZhiHQ(@RequestParam("id") String id);
    
    
    /**
     * 根据值域标识符获取代码
     * /wssy/zhiYu/daiMaByZJBSF
     * @param zhiJiBSF 值域标识符
     * @return
     */
    Result<WSSYBMXTDaiMaDto> getDaiMaByZJBSF(@RequestParam("zhiJiBSF") String zhiJiBSF);
    
    
    
    /**
     * 根据值域标识符和code获取value
     * /wssy/zhiYu/getValueByCode
     * @param dto
     * @param mode
     * @return
     */
    Result<List<WSSYBMXTDaiMaDto>> getValueByCode(@RequestBody ZhiYuMXCXDto[] dto,
                                                  @RequestParam(required = false, defaultValue = "1", value = "mode") Integer mode);
    
    
    
   /**
    * 根据值域标识符获取代码（列表）
    * /wssy/zhiYu/daiMaByZJBSFList
    * @param zhiJiBSFList 值域标识符集合
    * @return
    */
    Result<List<WSSYBMXTDaiMaDto>> getDaiMaByZJBSFList(@RequestParam("zhiJiBSFList") String[] zhiJiBSFList);
    
    
    
    /**
     * 获取区划代码
     * /quHuaDM/getByQuHuaDM
     * @param quHuaDM
     * @return
     */
    Result<QuHuaDMDto> getQuHuaDMByDM(@RequestParam(value = "quHuaDM", required = true) String quHuaDM);
    
    
    
    /**
     * 根据值域标识符判断是否存在该值域
     * /wssy/zhiYu/exist
     * @param zhiJiBSF 值域标识符
     * @param zhi 值
     * @return
     */
    Result<Boolean> zhiYuSFCZ(@RequestParam("zhiJiBSF") String zhiJiBSF, @RequestParam(value = "zhi", required = false) String zhi);

    
    
    /**
     * 根据编码系统标识符及值、值含义判断值是否在编码系统中存在
     * /wssy/bianMaXT/exist
     * @param biaoShiFu 标识符
     * @param zhi 值
     * @param zhiValue 值含义
     * @return
     */
    Result<Boolean> bianMaXTZhiExist(@RequestParam("biaoShiFu") String biaoShiFu, @RequestParam("zhi") String zhi,
                                     @RequestParam(value = "zhiValue", required = false) String zhiValue);
    
    
    
    /**
     * 根据标识符查看详情
     * /wssy/shuJuYuan/detailByShuJuYuan
     * @param biaoShiFu 标识符
     * @return
     */
    Result<ShuJuYuanDto> getDetailByShuJuYuan(@RequestParam("biaoShiFu") String biaoShiFu);
}
